﻿using System;
using System.Collections.Generic;
using System.Text;
using Tssipl.PaymentAdapter.Core;
using Tssipl.PaymentAdapter.MessageFormat.Sfms;
namespace Tssipl.PaymentAdapter.MessageEntity.Sfms
{
    public class SfmsMessageEntityBase:MessageEntityBase
    {
        public String AppId { get; set; }
        public char Lt { get; set; }
        public String MessageId { get; set; }
        public String MessageType { get; set; }
        public String SubMessageType { get; set; }
        public String SenderAddress { get; set; }
        public String ReceiverAddress { get; set; }
        public int DeliveryMonitoringFlag { get; set; }
        public int OpenNotificationFlag { get; set; }
        public int NonDeliveryWarningFlag { get; set; }
        public int ObsolescencePeriod { get; set; }
        public String MUR { get; set; }
        public int PossibleDuplicateFlag { get; set; }
        public String ServiceId { get; set; }
        public int OriginatingDate { get; set; }
        public int OriginatingTime { get; set; }
        public int TestingTrainingFlag { get; set; }
        public String SequenceNumber { get; set; }
        public String Filler { get; set; }
        public String UTR { get; set; }
        public int RTGSPriority { get; set; }
        public char BlockEndId { get; set; }
        public SfmsMessageEntityBase()
            : base()
        {
        }
        public SfmsMessageEntityBase(MessageParseResults results)
          :base(results)
      {
          SfmsMessage message = (SfmsMessage)results.getMessage();
          SfmsBlock1 block1 = message.getBlock1();

          this.AppId = block1.AppId;
          this.Lt = block1.Lt;
          this.MessageId = block1.MessageId;
          this.MessageType = block1.MessageType;
          this.SubMessageType = block1.SubMessageType;
          this.SenderAddress = block1.SenderAddress;
          this.ReceiverAddress = block1.ReceiverAddress;
          this.DeliveryMonitoringFlag = block1.DeliveryMonitoringFlag;
          this.OpenNotificationFlag = block1.OpenNotificationFlag;
          this.NonDeliveryWarningFlag = block1.NonDeliveryWarningFlag;
          this.ObsolescencePeriod = block1.ObsolescencePeriod;
          this.MUR = block1.MUR;
          this.PossibleDuplicateFlag = block1.PossibleDuplicateFlag;
          this.ServiceId = block1.ServiceId;
          this.OriginatingDate = block1.OriginatingDate;
          this.OriginatingTime = block1.OriginatingTime;
          this.TestingTrainingFlag = block1.TestingTrainingFlag;
          this.SequenceNumber = block1.SequenceNumber;
          this.Filler = block1.Filler;
          this.UTR = block1.UTR;
          this.RTGSPriority = block1.RTGSPriority;
          this.BlockEndId = block1.BlockEndId;

      }
    }
}
